package com.lekang.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 入住管理对象 check_in_management
 * 
 * @author chengbingzhen
 * @date 2025-10-15
 */
public class CheckInManagement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @Excel(name = "主键ID")
    private Long id;

    /** 入住单号 */
    @Excel(name = "入住单号")
    private String checkInNo;

    /** 老人外键编号 */
    @Excel(name = "老人外键编号")
    private Long elderlyId;

    /** 入住开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入住开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkInStartTime;

    /** 入住预结束时间 */
    private Date checkInEndTime;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;

    /** 创建时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 护理等级外键编号 */
    private Long nursingLevelId;

    /** 入住床位外键编号 */
    @Excel(name = "入住床位外键编号")
    private Long bedId;

    /** 费用期限开始时间 */
    private Date feeStartDate;

    /** 费用期限结束时间 */
    private Date feeEndDate;

    /** 押金 */
    private BigDecimal deposit;

    /** 护理费用 */
    private BigDecimal nursingFee;

    /** 床位费用 */
    private BigDecimal bedFee;

    /** 其他费用 */
    private BigDecimal otherFee;

    /** 医保支付 */
    private BigDecimal medicalInsurancePayment;

    /** 政府补贴 */
    private BigDecimal governmentSubsidy;

    /** 业务ID */
    private String businessId;

    /** 额外字段1 */
    private String extraField1;

    /** 额外字段2 */
    private String extraField2;
//    查询条件 当前时间
    private Date currentTime;

    public Date getCurrentTime() {
        return currentTime;
    }

    public void setCurrentTime(Date currentTime) {
        this.currentTime = currentTime;
    }

    /** 老人姓名(关联字段) */
    @Excel(name = "老人姓名")
    private String elderlyName;

    /** 老人身份证号(关联字段) */
    @Excel(name = "老人身份证号")
    private String elderlyIdCard;

    /** 床位号(关联字段) */
    @Excel(name = "床位号")
    private String bedNo;

    /** 创建人昵称(关联字段) */
    @Excel(name = "创建人")
    private String creatorNickName;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCheckInNo(String checkInNo) 
    {
        this.checkInNo = checkInNo;
    }

    public String getCheckInNo() 
    {
        return checkInNo;
    }

    public void setElderlyId(Long elderlyId) 
    {
        this.elderlyId = elderlyId;
    }

    public Long getElderlyId() 
    {
        return elderlyId;
    }

    public void setCheckInStartTime(Date checkInStartTime) 
    {
        this.checkInStartTime = checkInStartTime;
    }

    public Date getCheckInStartTime() 
    {
        return checkInStartTime;
    }

    public void setCheckInEndTime(Date checkInEndTime) 
    {
        this.checkInEndTime = checkInEndTime;
    }

    public Date getCheckInEndTime() 
    {
        return checkInEndTime;
    }

    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }

    public void setNursingLevelId(Long nursingLevelId) 
    {
        this.nursingLevelId = nursingLevelId;
    }

    public Long getNursingLevelId() 
    {
        return nursingLevelId;
    }

    public void setBedId(Long bedId) 
    {
        this.bedId = bedId;
    }

    public Long getBedId() 
    {
        return bedId;
    }

    public void setFeeStartDate(Date feeStartDate) 
    {
        this.feeStartDate = feeStartDate;
    }

    public Date getFeeStartDate() 
    {
        return feeStartDate;
    }

    public void setFeeEndDate(Date feeEndDate) 
    {
        this.feeEndDate = feeEndDate;
    }

    public Date getFeeEndDate() 
    {
        return feeEndDate;
    }

    public void setDeposit(BigDecimal deposit) 
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit() 
    {
        return deposit;
    }

    public void setNursingFee(BigDecimal nursingFee) 
    {
        this.nursingFee = nursingFee;
    }

    public BigDecimal getNursingFee() 
    {
        return nursingFee;
    }

    public void setBedFee(BigDecimal bedFee) 
    {
        this.bedFee = bedFee;
    }

    public BigDecimal getBedFee() 
    {
        return bedFee;
    }

    public void setOtherFee(BigDecimal otherFee) 
    {
        this.otherFee = otherFee;
    }

    public BigDecimal getOtherFee() 
    {
        return otherFee;
    }

    public void setMedicalInsurancePayment(BigDecimal medicalInsurancePayment) 
    {
        this.medicalInsurancePayment = medicalInsurancePayment;
    }

    public BigDecimal getMedicalInsurancePayment() 
    {
        return medicalInsurancePayment;
    }

    public void setGovernmentSubsidy(BigDecimal governmentSubsidy) 
    {
        this.governmentSubsidy = governmentSubsidy;
    }

    public BigDecimal getGovernmentSubsidy() 
    {
        return governmentSubsidy;
    }

    public void setBusinessId(String businessId) 
    {
        this.businessId = businessId;
    }

    public String getBusinessId() 
    {
        return businessId;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getElderlyName() {
        return elderlyName;
    }

    public void setElderlyName(String elderlyName) {
        this.elderlyName = elderlyName;
    }

    public String getElderlyIdCard() {
        return elderlyIdCard;
    }

    public void setElderlyIdCard(String elderlyIdCard) {
        this.elderlyIdCard = elderlyIdCard;
    }

    public String getBedNo() {
        return bedNo;
    }

    public void setBedNo(String bedNo) {
        this.bedNo = bedNo;
    }

    public String getCreatorNickName() {
        return creatorNickName;
    }

    public void setCreatorNickName(String creatorNickName) {
        this.creatorNickName = creatorNickName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("checkInNo", getCheckInNo())
            .append("elderlyId", getElderlyId())
            .append("checkInStartTime", getCheckInStartTime())
            .append("checkInEndTime", getCheckInEndTime())
            .append("creator", getCreator())
            .append("createTime", getCreateTime())
            .append("nursingLevelId", getNursingLevelId())
            .append("bedId", getBedId())
            .append("feeStartDate", getFeeStartDate())
            .append("feeEndDate", getFeeEndDate())
            .append("deposit", getDeposit())
            .append("nursingFee", getNursingFee())
            .append("bedFee", getBedFee())
            .append("otherFee", getOtherFee())
            .append("medicalInsurancePayment", getMedicalInsurancePayment())
            .append("governmentSubsidy", getGovernmentSubsidy())
            .append("businessId", getBusinessId())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .append("elderlyName", getElderlyName())
            .append("elderlyIdCard", getElderlyIdCard())
            .append("bedNo", getBedNo())
            .append("creatorNickName", getCreatorNickName())
            .toString();
    }
}
